// #include <stdio.h>
// #include <stdlib.h>
// #include <stdbool.h>
//
// // 节点结构
// typedef struct LinkNode {
//     int data;
//     struct LinkNode* next;
// } LinkNode;
//
// // 链表结构
// typedef struct LinkList {
//     LinkNode* head;
// } LinkList;
//
// // 链表初始化
// LinkList* LinkInit() {
//     LinkList* list = (LinkList*)malloc(sizeof(LinkList));
//     list->head = (LinkNode*)malloc(sizeof(LinkNode));
//     list->head->next = list->head; // 初始化为循环链表
//     return list;
// }
//
// // 插入节点到循环单链表尾部
// void LinkInsert(LinkList* list, int data) {
//     LinkNode* newNode = (LinkNode*)malloc(sizeof(LinkNode));
//     newNode->data = data;
//     newNode->next = list->head;
//
//     LinkNode* tail = list->head;
//     while (tail->next != list->head) {
//         tail = tail->next;
//     }
//     tail->next = newNode;
// }
//
// // 打印循环单链表
// void LinkPrint(LinkList* list) {
//     LinkNode* current = list->head->next;
//     while (current != list->head) {
//         printf("%d ", current->data);
//         current = current->next;
//     }
//     printf("\n");
// }
//
// // 判断链表中每个元素的值是否小于其后续两个节点的值之和
// bool CheckCondition(LinkList* L) {
//     LinkNode* current = L->head->next; // 第一个有效节点
//     LinkNode* next1 = current->next; // 第二个节点
//     LinkNode* next2 = next1->next; // 第三个节点
//
//     while (next2 != L->head) {
//         if (current->data >= (next1->data + next2->data)) {
//             return false; // 不满足条件
//         }
//         current = current->next; // 移动到下一个节点
//         next1 = next1->next;
//         next2 = next2->next;
//     }
//
//     // 检查倒数第二个节点和最后一个节点
//     if (current->data >= (next1->data + L->head->next->data)) {
//         return false;
//     }
//
//
//     // 检查最后一个节点和第一个节点
//     if (next1->data >= (next2->data + L->head->next->data)) {
//         return false;
//     }
//
//     return true; // 所有节点都满足条件
// }
//
// int main() {
//     LinkList* list = LinkInit();
//
//     // 插入数据到循环单链表
//     LinkInsert(list, 1);
//     LinkInsert(list, 2);
//     LinkInsert(list, 3);
//     LinkInsert(list, 4);
//
//     printf("循环单链表内容: ");
//     LinkPrint(list);
//
//     // 判断链表中每个元素的值是否小于其后续两个节点的值之和
//     bool result = CheckCondition(list);
//     printf("链表是否满足条件: %s\n", result ? "true" : "false");
//
//     // 释放链表内存
//     LinkNode* current = list->head;
//     LinkNode* next;
//     do {
//         next = current->next;
//         free(current);
//         current = next;
//     } while (current != list->head);
//     free(list);
//
//     return 0;
// }